//package com.omnisys.validarArchivo;
import java.util.StringTokenizer;

public class ValidarTipoDato {

    public boolean validarDate(Campo a, String contenido){

     try {
        String subcadena;
         int[] numero={2,2,4};
         int mes=0;
         int dia=0;
         int anio=0;
         int contador=0;
         StringTokenizer sep=new StringTokenizer(contenido,"/");
         if(sep.countTokens()==3){
            for(int i=0;sep.hasMoreTokens() && (i<3);i++){
             subcadena=sep.nextToken();
             if(subcadena.length()==numero[i]){
                 contador++;
                 if(i==0){
                     dia=Integer.parseInt(subcadena);
                  }
                 if(i==1){
                     mes=Integer.parseInt(subcadena);
                  }
                 if(i==2){
                     anio=Integer.parseInt(subcadena);
                 }
             }
          }
         }
        if(mes>0 && mes<13){
            contador++; //contador de mes
            System.out.println("validando mes"+contador);
        }
        if(mes==1 || mes==3 || mes==5 || mes==7 || mes==8 || mes==10 || mes==12){ //febrero, abril, junio,agosto,octubre, diciembre =31
             if(dia>0 && dia<32){
             contador++;}//contador de dia
        }
        else{
             if((mes!=2)&&(dia>0 && dia<31)){
             contador++;} //contador de dia
        }
        if(((anio%4)==0) && (mes==2) &&(dia>0 && dia<30)){ // el año es biciesto
                     contador ++;  // contador de dia
        }
        if(((anio%4)!=0) && (mes==2) &&(dia>0 && dia<29)){ // el año no es biciesto
                     contador ++;  // contador de dia
        }
        if(contador==5){
             return true;}
        else{
            return false;}
       }
    catch (Exception e) {
            return false;
    }
  }
   public boolean validarString(Campo a,String contenido,TipoLayout b) {

       if(b==b.SEPARADOR){
           return true;
       }
       else{
          if(a.getLongitud()==contenido.length()){
            return true;
          }
          else{
            return false;
         }
       }
   }
   public boolean validarInt(Campo a,String contenido,TipoLayout b){

        if(b==b.FIJO){
            if(a.getLongitud()==contenido.length()){
                contenido= contenido.replaceAll(" ","0");
                System.out.println(contenido);
                 if(isNum(contenido)){
                         return true;
                 }
                 else {
                        return false;
                }
             }
             else{return false;}
         }
         else{
             if(isNum(contenido)){
                         return true;
             }
             else {
                        return false;
             }
         }
 }
   public boolean isNum(String a){
        int contador=0;
        for(int i=0;i<a.length();i++) {
               if(a.charAt(i)>='0' && a.charAt(i)<='9'){
                   contador++;
               }
        }
        if(contador==a.length()){
                return true;
        }
        else{
                return false;
       }
   }

   public boolean validarDouble(Campo a,String contenido,TipoLayout b) {
        int contador=0;
        String subcadena="";
        String subcadena1;
        if(b==b.FIJO){
            if(a.getLongitud()!=contenido.length()){
                return false;
            }
       }
        StringTokenizer sep=new StringTokenizer(contenido,".");
        if(sep.countTokens()==2){
            subcadena=sep.nextToken();
            subcadena1=sep.nextToken();
            subcadena1=subcadena1.replaceAll(" ", "0");
            contenido=subcadena+subcadena1;
            System.out.println(contenido);
            if(subcadena1.length()<=1){
                return false;
            }
       }
       else{
            return false;
       }


       for(int i=0;(i<contenido.length());i++) {
            if(contenido.charAt(i)>='0' && contenido.charAt(i)<='9'){
                   contador++;
            }
             if(contenido.charAt(i)=='.'){
                    i++;
                    contador=contador+2;
             }
       }

       if(contador==contenido.length()){
                return true;
       }
       else{
                return false;
       }
    }
}
